Phương thức hoạt động Máy_tính

Trong khi các công nghệ sử dụng trong máy tính không ngừng thay đổi kể từ những chiếc máy tính có mục đích không nhất định đầu tiên của thập niên 1940 (Xem Lịch sử phần cứng máy tính) thì phần lớn các máy tính vẫn còn sử dụng kiến trúc Von Neumann.

Kiến trúc Von Neumann chia máy tính ra làm bốn bộ phận chính:

  1. Đơn vị số học và lôgic (ALU),
  2. Mạch điều khiển (control circuitry),
  3. Bộ Nhớ
  4. Các thiết bị Xuất/Nhập (I/O).
  • Các bộ phận này được kết nối với nhau bằng các bó dây điện (được gọi là các bus khi mỗi bó hỗ trợ nhiều hơn một đường dữ liệu) và thường được điều khiển bởi bộ đếm thời gian hay đồng hồ (mặc dù các sự kiện khác cũng có thể điều vận mạch điều khiển).

Bộ nhớ

Bài chi tiết: Bộ nhớ máy tính

Bộ nhớ máy tính có 2 phần chính là bộ nhớ trong và bộ nhớ ngoài. Trong hệ thống này bộ nhớ là sự nối tiếp của các ô đánh số thứ tự, mỗi ô chứa một phần nhỏ của thông tin. Thông tin có thể là chỉ thị cho máy tính. Mỗi ô cũng có thể chứa dữ liệu mà máy tính cần để thi hành chỉ thị. Nội dung của một ô nhớ có thể thay đổi ở bất kỳ thời điểm nào.

Kích thước một ô nhớ cũng như số lượng ô nhớ thay đổi theo từng máy tính giống như công nghệ sử dụng trong việc chế tạo bộ nhớ, từ rơ le cơ-điện tới ống chứa thủy ngân, từ băng từ tới transistor hay IC.

Bộ xử lý (CPU)

Bài chi tiết: Bộ xử lý

Đơn vị lôgic và số học, (tiếng Anh là Arithmetic and Logic Unit, viết tắt ALU), là thiết bị thực hiện các phép tính cơ bản như các phép tính số học (cộng, trừ, nhân, chia, v.v), các phép tính lôgic (AND, OR, NOT, v.v) cũng như các phép so sánh (ví dụ: so sánh nội dung của hai byte xem có bằng nhau). Đơn vị này là nơi mà các "công việc thực sự" được thực thi.

Đơn vị kiểm soát theo dõi các byte trong bộ nhớ có chứa chỉ thị để máy tính thực thi, cung cấp cho ALU một chỉ thị cần phải thực thi cũng như chuyển kết quả thu được tới các vị trí thích hợp trong bộ nhớ. Sau khi điều đó diễn ra, đơn vị kiểm soát chuyển tới chỉ thị kế tiếp (thông thường nằm tại địa chỉ ngay sau), nếu không thì chỉ thị sẽ là chỉ thị nhảy thông báo cho máy tính là chỉ thị tiếp theo nằm tại một địa chỉ khác. Khi tham chiếu tới bộ nhớ, chỉ thị hiện thời có thể sử dụng một số phương thức đánh địa chỉ (addressing mode) để xác định địa chỉ liên quan trong bộ nhớ. Một số bo mạch chủ trong máy tính có thể gắn được hai hay nhiều bộ xử lý. Các loại máy tính phục vụ thường có hai hay nhiều bộ xử lý.

Thiết bị ngoại vi (I/O)

Bài chi tiết: Thiết bị ngoại vi

Các chỉ thị

  • Tập hợp các ngôn ngữ dùng cho chỉ thị của máy tính thì không nhiều như ngôn ngữ của con người. Máy tính có một tập hợp hữu hạn gồm các chỉ thị đơn giản đã được định nghĩa trước.
  • Nó chỉ có thể thực thi hai nhiệm vụ là đếm và so sánh. Các loại chỉ thị điển hình mà phần lớn máy tính có thể hỗ trợ, chuyển sang ngôn ngữ con người, là "sao chép nội dung ô 123, đặt bản sao đó vào ô 456", "thêm nội dung của ô 666 vào nội dung ô 042, đưa kết quả vào ô 013", "nếu kết quả của ô 999 là 0, chỉ thị tiếp theo nằm tại ô 345"...
  • Các chỉ thị trong máy tính tương ứng với mã trong hệ nhị phân - hệ đếm cơ số 2. Ví dụ mã của chỉ thị sao chép ("copy") có thể là 001.
  • Tập hợp các chỉ thị mà một máy tính hỗ trợ được gọi là ngôn ngữ máy của máy tính.
  • Trong thực tế, người ta thông thường không viết các chỉ thị cho máy tính bằng ngôn ngữ máy mà sử dụng các ngôn ngữ lập trình "bậc cao" để sau đó chúng được dịch sang ngôn ngữ máy một cách tự động bởi các chương trình máy tính đặc biệt (trình thông dịch (interpreter) và trình biên dịch (compiler)).
  • Một số ngôn ngữ lập trình rất gần với ngôn ngữ máy như assembler gọi là ngôn ngữ bậc thấp;
  • Ngược lại các ngôn ngữ lập trình như Prolog, Basic, Delphi... dựa trên các nguyên lý trừu tượng rất xa với hoạt động thực sự của máy gọi là ngôn ngữ bậc cao.

Kiến trúc

Các máy tính hiện đại ghép chung ALUđơn vị kiểm soát vào trong một IC gọi là đơn vị xử lý trung tâm hay CPU. Thông thường, bộ nhớ máy tính nằm trong một số IC nhỏ gần CPU. Phần lớn trọng lượng máy tính là các bộ phận phụ thuộc như hệ thống cung cấp điện hay các thiết bị đầu/cuối (I/O).

Một số máy tính lớn khác biệt với mô hình trên ở điểm chính sau - chúng có nhiều CPU và đơn vị kiểm soát hoạt động đồng bộ. Ngoài ra, một số máy tính, sử dụng chủ yếu trong nghiên cứu và tính toán khoa học, khác biệt rất đáng kể với mô hình trên, nhưng chúng ít có ứng dụng thương mại vì mô hình lập trình chúng vẫn chưa được chuẩn hóa.

Vì vậy, hoạt động của máy tính thì không phức tạp trên nguyên lý. Thông thường, trong mỗi nhịp đồng hồ, máy tính sẽ nhận được các chỉ thị và dữ liệu từ bộ nhớ của nó. Các chỉ thị được thực thi, kết quả được lưu lại và chỉ thị tiếp theo được nhận về. Quá trình này tiếp diễn cho đến khi gặp chỉ thị dừng.

Chương trình

Chương trình máy tính đơn giản chỉ là một danh sách các chỉ thị để máy tính thực thi, có thể với các bảng dữ liệu. Rất nhiều chương trình máy tính chứa hàng triệu chỉ thị và rất nhiều chỉ thị được lặp đi lặp lại. Một chiếc máy tính thông thường ngày nay (năm 2003) có thể thực hiện 2-3 tỷ chỉ thị trong một giây. Máy tính không có các khả năng đặc biệt thông qua việc thực thi các chỉ thị phức tạp mà cơ bản là nó chỉ thực thi các chỉ thị đơn giản do lập trình viên đưa ra. Một số lập trình viên giỏi phát triển các tập hợp chỉ thị dùng cho một số công việc chung (như vẽ một điểm trên màn hình) và cung cấp các tập hợp chỉ thị đó cho các lập trình viên khác. Một số lập trình viên khác chỉ phát triển các ứng dụng thực tế dựa trên các nền tảng mà các lập trình viên kia cung cấp cho họ.

Hiện nay, phần lớn máy tính có thể thực hiện cùng một lúc vài chương trình. Điều này được gọi là đa nhiệm (multitasking). Trên thực tế, CPU thực thi các chỉ thị của một chương trình, sau một khoảng thời gian ngắn, nó chuyển sang thực thi các chỉ thị của chương trình thứ hai v.v. Khoảng thời gian ngắn đó được xem như là sự phân chia thời gian của CPU và nó tạo ảo giác như là các chương trình được thực thi đồng thời. Điều này cũng tương tự như phim là sự chuyển động đơn giản của các ảnh kế tiếp nhau. Hệ điều hành là chương trình thông thường kiểm soát sự phân chia thời gian đó.

Hệ điều hành

  • Máy tính cần ít nhất một chương trình luôn luôn chạy để đảm bảo sự hoạt động của nó.
  • Trong điều kiện hoạt động bình thường (đối với các máy tính tiêu chuẩn) chương trình này được gọi là hệ điều hành (operating system).
  • Hệ điều hành sẽ quyết định chương trình nào được thi hành, khi nào và bao nhiêu tài nguyên (như bộ nhớ hay đầu vào/đầu ra) chúng được cấp.
  • Hệ điều hành cũng cung cấp một lớp trừu tượng trên phần cứng và cho phép truy nhập bằng các dịch vụ cung cấp cho các chương trình khác, như mã ("driver") cho phép lập trình viên viết chương trình cho máy tính mà không cần thiết phải biết các chi tiết thuộc bản chất của các thiết bị điện tử đính kèm.
  • Phần lớn các hệ điều hành có các lớp trừu tượng phần cứng đều có một giao diện người dùng (user interface) chuẩn hóa. Hệ điều hành phổ biến nhất hiện nay là Windows của Microsoft.
  • Hệ điều hành đầu tiên của máy tính là hệ điều hành MS-DOS thuộc tập đoàn Microsoft được tạo ra bởi Bill Gates